#ifndef __APP_ARMCMD_H_
#define __APP_ARMCMD_H_

#include "stdint.h"
#include "types.h"
#include "app_arm.h"
//-----------------------------------------------------------
typedef struct {
	uint8_t step;
	uint8_t flag;
	uint8_t data[4];
	uint32_t timeout;
}st_cmd_operation;

typedef struct{
	BOOL reqFlag;  
	BOOL respFlag; 
	uint8_t buf[8];
}struct_eth_diag_t;

typedef enum
{
	ERR_SUCCESS            = 0x00,
	ERR_INVALID_PARAMETER,
	ERR_INVALID_DATA,
	ERR_INVALID_MAX_SIZE,
	ERR_INVALID_DECRYPTION,
	ERR_CHECKSUM,
	ERR_DEVICE_BUSY,
	ERR_MAX
}arm_err_msg_t;

typedef enum
{
	CMD_NULL					= 0x00,
	ID_PWR_STATUS_GET           = 0x01,
	ID_PWR_STATUS_SET           = 0x02,
	ID_PWR_STATUS_REPORT        = 0x03,
	ID_PWR_OFF_REQUEST          = 0x04,
	ID_PWR_LOBJ_SW_SET          = 0x05,

	ID_ENTRY_PASS_SET           = 0x21,
	ID_ENTRY_STATUS_SET         = 0x22,
	ID_ENTRY_WAKEUP_CAN         = 0x23,
	ID_ENTRY_SEAT_STATUS        = 0x24,

	ID_DISPLAY_POW_SET          = 0x30,
	/*ID_DISPLAY_CHANNEL_SET      = 0x31,
	ID_PROXIMITY_STATUS_REPORT  = 0x32,
	ID_PROXIMITY_POWER_ON	    = 0x33,	
	ID_DISPLAY_BG_POWER         = 0x34,
	ID_DISPLAY_CAN_MSG          = 0x35,*/
	ID_PROXIMITY_SETLOG  	    = 0x33,
	

	ID_FPM_POWER                = 0x41,
	ID_FPM_INFO_REGISTER        = 0x42,
	ID_FPM_INFO_GET             = 0x43,
	ID_FPM_INFO_DELETE          = 0x44,
	ID_FPM_ID_START             = 0x45,
	ID_FPM_ID_CANCEL            = 0x46,
	ID_FPM_MODULE_SET           = 0x47,
	
	ID_HEART_RATE_POWER         = 0x51,
	ID_HEART_RATE_TRESHOLD_SET  = 0x52,
	ID_HEART_RATE_REPORT_SET    = 0x53,
	ID_HEART_RATE_REPORT_GET    = 0x54,
	ID_HEART_RATE_REPORT        = 0x55,
	ID_HEART_RATE_START_STOP    = 0x56,
	ID_HEART_RATE_LEVEVL_REPORT = 0x57,

	ID_BP_POWER                 = 0x61,
	ID_BP_TRESHOLD_SET          = 0x62,
	ID_BP_RATE_REPORT_SET       = 0x63,
	ID_BP_RATE_REPORT_GET       = 0x64,
	ID_BP_REPORT                = 0x65,
	ID_BP_START_STOP            = 0x66,
	ID_BP_LEVEVL_REPORT         = 0x67,

	ID_CAR_INFO_REPORT          = 0x71,
	ID_CAR_TIME_REPORT          = 0x72,
	ID_CAR_VIN_TRACE_GET        = 0x73,

	ID_IS_SYSTEM_ALIVE          = 0x81,
	ID_B_CAMERA_STATUS_GET      = 0x82,
	ID_MAX9826_STATUS_GET       = 0x83,
	ID_ETH_DIAG                 = 0x84,
	
	ID_DISPLAY_DTC_REPORT       = 0x86,
	//ID_FPM_DTC_REPORT           = 0x87,
	ID_SOC_INFO_REPORT          = 0x87,
	
	ID_SYSINFO_MCU_UPDATE       = 0x91,
	ID_SYSINFO_UPDATE_COMPLETE  = 0x92,
	ID_SYSINFO_ENGINEERING_MODE = 0x93,
	ID_SYSINFO_VERSION_GET      = 0x94,

	
	ID_ETHERNET_CH_LIST         = 0xA0,
	ID_MAC_ADDRESS_LIST         = 0xA1,
	ID_PHY_ID_LIST              = 0xA2,
	ID_LINK_STATE               = 0xA3,
	ID_ETHERNET_SIGNAL_QUALITY  = 0xA4,
	ID_STATISTIC_COUNTER        = 0xA5,
	ID_WRETE_MASTER_SLAVE       = 0xA6,
	ID_REGISTER_NUM             = 0xA7,
	ID_REGISTER_VALUE           = 0xA8,
	ID_READ_MASTER_SLAVE        = 0xA9,
	ID_RESET_STATISTIC          = 0xAA,
	ID_IP_ADDRESS_LIST          = 0xAB,
	ID_ETHERNET_INTERFACE_LIST  = 0xAC,
	ID_ARP_TABLE                = 0xAD,
	
	ID_SOC_DTC_REPORT           = 0x85,
	ID_DRV_STAT_MON_SIG			= 0xB0,
	ID_VEHICLE_SPEED			= 0xB9,
	ID_STEERING_ANGLE			= 0xBA,
	ID_DMS_CONF					= 0xBB,
	ID_SOC_VERSION				= 0XBC,
	ID_SOC_DEBUG_CTRL			= 0XBD,
	ID_GET_ECU_SERIAL_NUMBER	= 0XBE,
	ID_DMS_UDS2SOC				= 0xBF,
	ID_DMS_HEART_PACKAGE		= 0xC0,
	CMD_LIST_MAX		        = 0xFF,   //
}arm_msg_cmd_t;


//-----------------------------------------------------------
extern struct_ArmDmsRespond_t vsp_seat_flag;
extern struct_eth_diag_t ethDiag;
extern st_cmd_operation eth_mode_by_routine;
extern st_cmd_operation eth_master_slaveInfo;

#endif


